Programmable logic devices implement Boolean logic and comprise an array of non-volatile cells, each of which is programmed on or off. A programmed cell has a high threshold and therefore, does not conduct while a non-programmed cell has a low threshold and therefore, does conduct. Exemplary non-volatile cells include EPROM, PROM and FLASH type memory array cells.
Reference is made to FIG. 1 which illustrates a row of one array having six cells 10, 12, 14, 16, 18 and 20. The cells 10-20 are connected in parallel between a bit line 22 and a source line 24. A pull-up transistor 26 is connected to the bit line 22 and to a voltage source Vcc. A pulldown transistor 28 is connected to the source line 24 and to ground. The gate of each cell is controlled by an input signal where, typically, two neighboring cells are connected to an input signal, for example A, and its logical complement A. FIG. 1 shows three types of input signals, A, B and C and their complements A, Band C. Finally, the output signal is measured by a measuring unit 30.
The cells 10-20 are programmed to implement the desired Boolean operation on the signals A, B and C. FIG. 1 shows that cells 10, 16 and 18, connected respectively to signals A, Band C, are programmed (e.g. high threshold) and cells 12, 14 and 20, connected respectively to signals A, B and C, are not programmed (e.g. low threshold).
When values are provided on the input signals, the signal on the bit line 22 will represent the Boolean combination of the input signals, Since a true value is denoted with a 0, the signal on the bit line 22 is actually the complement of the Boolean combination. Thus, the signal on bit line 22 of FIG. 1 represents: EQU BL=A+B+C=A.cndot.B.cndot.C 1
The measuring unit 30 determines whether the signal on bit line 22 corresponds to either a 1 value (false) or a 0 value (true). The actual voltage of the bit line varies in accordance with the number of transistors which are not programmed. This affects the transition between states, as illustrated in FIG. 2 to which reference is now made. FIG. 2 also illustrates a "trip voltage" 32, the voltage at which the measuring unit 30 determines that it is reading a different state. Thus, above trip voltage 32, measuring unit 30 will output a "1" whereas below trip voltage 32, measuring unit 30 will output a "0".
When all of the transistors are programmed, they do not conduct. The voltage of the bit-line 22 is at its highest since only the pull-up 26 is active. This is called the "1" state.
When all of the transistors are not programmed, and thus, all of them conduct, the voltage of the bit line 22 is at its lowest, known as the "strong 0" state. This state is easy for the measuring unit 30 to define, since the strong 0 voltage is well below the trip voltage 32. However, when the bit line 22 changes to a "1" state, the pull-up 26 has to pull the voltage of the bit line 22 a long way. If pull-up 26 is small, which is common, it will take some time, as shown, before the voltage of the bit line 22 crosses the trip voltage 32.
When only one transistor conducts, there Is an equal pull between the pullup 26 and the conducting transistor, which acts as a pull-own, the result being that the bit line voltage goes to a value lower than the trip point, but only slowly. This Is known as a "weak 0" state (graph (b)). The measuring unit 30 has to wait for the bit line voltage to stabilize. However, the transition from a weak 0 state to a 1 state, the transition shown in graph (b), is easier since the weak 0 state is closer to the trip voltage 32.
A similar situation occurs when more than one transistor conducts, Typically, the trip voltage 32 is placed just above the highest voltage value which can be defined as a 0 state.
Graph (c) illustrates the transition from a 1 state to a strong 0 state is and indicates that the transition is quick and well-defined. Graph (d) illustrates the transition from a 1 to a weak 0 state and indicates that the transition is slow.